1.1 Go语言的设计初衷与发展历程

本节我们主要针对:Go语言是怎么产生的?Go语言的发展怎么样?两个方面进行探讨。

通过本节的学习帮助我们了解Go语言的前世今生,也便于我们之后对于Go语言的理解。

设计初衷

要了解Go语言的设计初衷,我们需要先了解一下设计时的背景。

2007年的Google业务已经做的很大。像这种规模的团队,代码可能已经多到很难维护,一个程序或者软件就可能多达上百万行代码。

在这种背景下,出现了很多问题:

  • 代码复杂,很多系统难以维护

  • 软件规模变大,编译一次都需要很长时间

  • 开发效率低下,现有语言实现一个简单的功能都需要写很多代码

  • 资源占用增大,由于语言的特性导致每一个应用都需要占用很多服务器

基于上面的问题,Google开始了Go语言的设计,主要就是解决上面的问题。所以在开始设计的时候,Go语言就定下了基调,它需要解决下面的问题,同时也是它具备的特性:

  • 代码简洁

  • 简单易学

  • 编译快速

  • 开发效率极高

  • 并发编程简单

  • 资源占用极低

我们也可以看到,现在版本的Go语言可以说基本实现了上面的要求,这也是它得以快速发展的关键。

我们从 Go 语言的命名也基本可以看出其特性。Go 语言的命名来自于 gopher,这是一种生活在加拿大的小地鼠,它最大的特点就是挖洞的速度特别快,所以进行简写之后,将这门变成语言命名为了 Go


发展历程

Go语言在2007年被提出来以后,开始了内部开发工作。它的关键历程可以分为下面几个阶段:

  • 2007年9月2日:在Google内部开始开发。

  • 2009年11月10日:正式以开源形式发布。

  • 2012年3月28日Go 1.0版本发布,这是第一个稳定的发行版,包含了基础的语言特性和标准库。

  • 2015年8月19日Go 1.5版本发布,引入了重要的新特性,如vendor目录支持和新的内存模型。

  • 2016年2月17日Go 1.7版本发布,增加了新的错误处理模式,并对性能进行了优化。

  • 2018年2月16日Go 1.10版本发布,包含了对Modules的支持,这是全新的依赖管理方式。

  • 2019年2月25日Go 1.13版本发布,增加了对arm64架构的官方支持,并对性能进行了优化。

  • 2020年1月29日Go 1.15版本发布,引入了新的错误处理方式,并对性能进行了优化。

  • 2022年2月15日Go 1.18版本发布,支持泛型,并对编译器和运行时进行了优化。

  • 2022年8月2日Go 1.19版本发布,对泛型性能进行了优化,以及各种性能及实现的改进。

  • 2023年2月2日Go 1.20版本发布,支持切片与数组的转换,解决了泛型引入所导致的编译速度降低问题。

  • 2024年2月6日Go 1.22版本发布,对for循环进行了更新,并对编译进行了进一步优化。

从上面的版本发布日程我们可以看出,Go语言的发布还是很频繁的。比较重要的一点是他们的初衷没有改变,可以看到性能优化是他们一直追求的。

我们可以通过 点击这里 查看Go语言详细的版本发布历史,通过版本发布历史我们可以清晰的了解到Go语言的发展历程。

results matching ""

    No results matching ""